<?php
/*
Cogumelo v0.1 - Map-Experience
Copyright (C) 2008 Innoto Gestión para el Desarrollo Social S.L. <mapinfo@map-experience.com>

This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301,
USA.
*/


//
// Log dump Controller abstract class
//

require_once("Classes/Controllers/Log/LoglineVO.inc");

abstract class LogController
{

protected $logline;
protected $username;
protected $loglevel;
protected $autodump=false;
protected $ip;

    //
    // Class Constructor
    //
    function __construct($loglevel=1 ,$autodump=false, $username="anonymous")
    {     
     $this->loglevel=$loglevel;
     $this->autodump=$autodump;
     $this->username=$username;
     $this->ip = $_SERVER['REMOTE_ADDR']; 
    }
    
    
    function setAutodump($autodump)
    {
     if($autodump) $this->autodump=true;
     else $this->autodump=false;
    }
    
    //
    // Activate or deactivate autologline dumping
    //
    function setUsername($username)
    {
     $this->username=$username;
    }
    
    
    //
    // Add a logline to log buffer
    //
    function addLogline($text, $level)
    {
     if($level <= $this->loglevel)
     {
      
      $time=date("Y-m-d H:i:s", time());
      $this->logline[]= new LoglineVO($time, $text);
          
      if($this->autodump)
      {
        $this->dump();
      }
      
     }    
    }
    
    //
    // Dump logdata available in the buffer to desired destination
    //
    abstract function dump();
    
}


?>